<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>作用域链</title>
</head>

<body>
    <script>
        //作用域链[[scope]]
        //AO GO 联系 （执行期上下文）
        //[[scope]]存放运行期上下文集合（AO  GO）
        //函数定义时 name.[[scope]] 最高位(0)存放 GO{}(所在环境) 
        //函数执行时 name.[[scope]] 最高位(0)存放 AO{}
        //                         下一位(1)存放 GO{} 
        //执行完 销毁自己的执行上下文
        function a() {
            function b() {
                var b = 234;
            }
            var a = 123;
            b();
        }
        var global = 100;
        a();
        //a函数定义时 当前环境为全局，a.[[scope]]最高位存放GO（全局的执行上下文）;
        //a函数执行时 a.[[scope]] 最高位存放AO（本身的执行上下文）；
        //                       下一位存放GO；
        //b函数定义时 当前环境为a函数，b.[[scope]]存放a.[[scope]]（即a的AO和GO）
        //b函数执行时 b.[[scope]] 将自己生成的AO 存入最高位
        

        
    </script>
</body>

</html>